Design and manufacture of complex machines invariably presents a wide variety of engineering challenges. Complex products, structures or facilities like aircraft, ships, off-shore oil drilling platforms and computational genomic structures are typically constructed using hundreds or thousands of mechanical, electrical and other assemblies, which in turn are comprised of numerous individual components or sub-assemblies. Collecting and managing data about such assemblies is required to streamline the design and manufacturing process of the product, structure or facility. The need for such data about the given structure or facility becomes critical in designing variants, improvements, or additional subsystems for the given structure/facility. Computer based systems for collecting and managing such assembly related data provide an efficient solution to such problems.
The data about multiple assemblies, if collected by a computer-based system, can be very useful in a virtual product designing process. The design and testing of products in a virtual environment (on the computer) will allow designers to greatly reduce highly expensive physical prototyping and testing of the product. Virtual product design environments can save significant costs and time required for designing a given product, machine or facility. Design efficiency in a virtual environment will be enhanced when a critical fraction of product design assembly data can be both captured in computer based systems and shared between the members of common product families; for example, a passenger transport aircraft versus a freighter.
Computer Aided Drafting or Computer Aided Design (CAD) has replaced drafting as the preferred method of designing products, especially complex products having a large number of parts and assemblies. CAD tools do not allow substantial sharing of or have only limited capability to share design data between the design variants in product families. Lack of sharing functionality leads to substantial duplication of assembly-level, product design data stored in CAD files and even in product data management systems, because the same or essentially the same drawing is replicated multiple times in the data base. Recreating the drawing increases the likelihood that errors will occur and makes updating changes to the drawing a multi-step process that is often tedious and subject to introduction of errors. Hence, there is a need for a data model that promotes substantial design data sharing.
An “assembly,” as used in this description, is an aggregation or combination of the component parts (i.e., “details”) of a mechanism, machine or device. More generally, in the context of this invention with respect to design, an “assembly” is defined as a general, aggregate design that is composed of instances (or uses) of other independent designs. The only constraint is that any assembly can never be a child of itself at any level of assembly definition. Components have various characteristics like shape, size, strength, materials, etc., that vary depending upon design domain. For illustrative purposes, these descriptions will focus on, but are not limited to, the mechanical design domain.
The term “component” is generally used hereafter to refer to a design in any domain. The term “assembly” may also be used when a “component” itself represents the integration of several components into an assembly, often referred to as a “subassembly,” such as an engine in a car. Since the information regarding which subassemblies or components are used by each higher tier assembly is important information, it is critical that computer-based systems optimally manage stored product data. Such stored product data may include Component Usage (CU) information in addition to the regular component information about the component characteristics. CU information associated with a given assembly is a data unit or object that indicates that the assembly includes (or uses) another component that may be either an assembly or a leaf level design, like a simple mechanical part.
Component usage information links a component to an assembly definition. If two of the electrical assembly variants require the same type of motor but with different power ratings, then two distinct CUs would be used to include the two different motors on the design, even though they are essentially fulfilling the same role on the assembly. To capture that additional crucial information, an additional data unit is required to capture the “role” that is fulfilled by distinct components across the assembly variants.
Capture of such “role” related information is achieved through the use of the Logical Component Usage (LCU) product data concepts that were disclosed in U.S. patent application Ser. No. 10/128,922 titled “A Logical Hierarchical Data Model for Sharing Product Information Across Product Families,” which is incorporated by reference. The LCU is a data unit or object that relates to one or more CUs to indicate that they play a common role in their parent assemblies, which are distinct variants of an assembly or product family.
An example below illustrates the LCU concept. A hydraulic assembly has two variants, where a first hydraulic assembly variant requires a large pump and a second hydraulic assembly variant requires a small pump. The pumps required by both variants are broadly of similar type except for the obvious differences in their capacities. The CU for the large pump will indicate that it is required in the first variant and the CU for the small pump will indicate that it is required for the second variant. A LCU, labeled as “pump”, would relate the above two CUs to indicate that they play a common role within the design or architecture of the multivariant hydraulic assembly. To summarize, a LCU captures the logical role that must be fulfilled by a component usage, while a CU just captures the inclusion of a component in an assembly.
The data model using CUs and LCUs for component data provides significant advantages. However, a need still exists for a multivariant assembly data model, which can provide precise control over the specification and content of each product configuration, while sharing as much of the common definition as possible.